
#include "wm_hal.h"

PSRAM_HandleTypeDef hpsram;

void Error_Handler(void);
static void PSRAM_Init(void);

static uint8_t *psram_buf = (uint8_t *)PSRAM_ADDR_START;

int main(void)
{
	uint8_t temp[100];
	int i = 0;
	
	SystemClock_Config(CPU_CLK_160M);
	printf("enter main\r\n");
	
	PSRAM_Init();
	memset(psram_buf, 0, 100);
	for(i = 0; i < 100; i++)
	{
		printf("%x ", psram_buf[i]);
	}
	printf("\r\n");
	
	for(i = 0; i < 100; i++)
	{
		temp[i] = i % 256;
	}
	
	memcpy(psram_buf, temp, 100);
	for(i = 0; i < 100; i++)
	{
		printf("%x ", psram_buf[i]);
	}
	printf("\r\n");

	while(1)
	{
		HAL_Delay(1000);
	}
}

static void PSRAM_Init(void)
{
	hpsram.Instance = PSRAM;
	hpsram.Init.Div = 3;
	hpsram.Init.Mode = PSRAM_MODE_QSPI;
	
	if (HAL_PSRAM_Init(&hpsram) != HAL_OK)
	{
		Error_Handler();
	}
}

void Error_Handler(void)
{
	while (1)
	{
	}
}

void assert_failed(uint8_t *file, uint32_t line)
{
	printf("Wrong parameters value: file %s on line %d\r\n", file, line);
}